// 后台服务工作线程

// 监听安装事件
chrome.runtime.onInstalled.addListener(function(details) {
    console.log('隐蔽阅读助手已安装');
    
    // 首次安装时初始化存储
    if (details.reason === 'install') {
        chrome.storage.sync.set({
            fontSize: '14',
            lineHeight: '1.5',
            opacity: '0.7',
            hotkeyNext: 'Right',
            hotkeyPrev: 'Left'
        }, function() {
            console.log('默认设置已初始化');
        });
    }
});

// 监听浏览器启动事件
chrome.runtime.onStartup.addListener(function() {
    console.log('浏览器启动，隐蔽阅读助手已就绪');
});

// 监听标签页切换事件
chrome.tabs.onActivated.addListener(function(activeInfo) {
    // 获取当前激活的标签页
    chrome.tabs.get(activeInfo.tabId, function(tab) {
        // 检查是否存在错误
        if (chrome.runtime.lastError) {
            return;
        }
        
        // 只同步文件名和位置，内容由content.js从local storage加载
        chrome.storage.sync.get(['fileName', 'currentPosition'], function(result) {
            if (chrome.runtime.lastError) {
                return;
            }
            
            if (result.fileName) {
                chrome.tabs.sendMessage(activeInfo.tabId, {
                    action: 'syncContent',
                    fileName: result.fileName,
                    position: result.currentPosition || 0
                }, function(response) {
                    // 忽略可能的错误
                    if (chrome.runtime.lastError) {
                        // 静默处理错误
                    }
                });
            }
        });
    });
});

// 监听标签页更新事件
chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
    // 当标签页完全加载时同步内容
    if (changeInfo.status === 'complete') {
        // 只同步文件名和位置，内容由content.js从local storage加载
        chrome.storage.sync.get(['fileName', 'currentPosition'], function(result) {
            if (chrome.runtime.lastError) {
                return;
            }
            
            if (result.fileName) {
                chrome.tabs.sendMessage(tabId, {
                    action: 'syncContent',
                    fileName: result.fileName,
                    position: result.currentPosition || 0
                }, function(response) {
                    // 忽略可能的错误
                    if (chrome.runtime.lastError) {
                        // 静默处理错误
                    }
                });
            }
        });
    }
});

// 监听来自内容脚本的消息
chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) {
    if (message.action === 'savePosition') {
        // 保存阅读位置
        if (message.position !== undefined) {
            chrome.storage.sync.set({ currentPosition: message.position }, function() {
                sendResponse({ status: 'success' });
            });
            return true; // 表示将异步发送响应
        }
    }
    return false;
});

// 添加简单的错误监控
chrome.runtime.onSuspend.addListener(function() {
    console.log('隐蔽阅读助手即将暂停');
});

// 注册键盘快捷键命令
if (chrome.commands && typeof chrome.commands.onCommand.addListener === 'function') {
    chrome.commands.onCommand.addListener(function(command) {
        if (command === 'next-page') {
            // 查找当前激活的标签页并发送下一页命令
            chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
                if (chrome.runtime.lastError) {
                    return;
                }
                
                if (tabs.length > 0) {
                    chrome.tabs.sendMessage(tabs[0].id, { action: 'nextPage' }, function(response) {
                        if (chrome.runtime.lastError) {
                            // 静默处理错误
                        }
                    });
                }
            });
        } else if (command === 'prev-page') {
            // 查找当前激活的标签页并发送上一页命令
            chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
                if (chrome.runtime.lastError) {
                    return;
                }
                
                if (tabs.length > 0) {
                    chrome.tabs.sendMessage(tabs[0].id, { action: 'prevPage' }, function(response) {
                        if (chrome.runtime.lastError) {
                            // 静默处理错误
                        }
                    });
                }
            });
        }
    });
}